body {
    padding: 0;
    margin: 0;
    background: #000;
}

#wrap {
    position: relative;
    width: 200px;
    height: 200px;
    margin: 200px auto;
    animation: rota 20s infinite;
    transform-style: preserve-3d;
}

#wrap div {
    width: 100px;
    height: 100px;
    position: absolute;
    top: 50px;
    left: 50px;
}

#wrap span {
    display: block;
    width: 200px;
    height: 200px;
    position: absolute;
    transition: all 1s;
    opacity: .8;
}

#wrap div img {
    width: 100px;
    height: 100px;
}

#wrap span img {
    width: 200px;
    height: 200px;
}

.in_front {
    transform: translateZ(50px);
}

.in_back {
    transform: translateZ(-50px);
}

.in_left {
    transform: rotateY(90deg) translateZ(50px);
}

.in_right {
    transform: rotateY(-90deg) translateZ(50px);
}

.in_top {
    transform: rotateX(90deg) translateZ(50px);
}

.in_bottom {
    transform: rotateX(-90deg) translateZ(50px);
}

.out_front {
    transform: translateZ(100px);
}

.out_back {
    transform: translateZ(-100px);
}

.out_left {
    transform: rotateY(90deg) translateZ(100px);
}

.out_right {
    transform: rotateY(-90deg) translateZ(100px);
}

.out_top {
    transform: rotateX(90deg) translateZ(100px);
}

.out_bottom {
    transform: rotateX(-90deg) translateZ(100px);
}

@keyframes rota {
    from {
        transform: rotateX(0deg) rotateY(0deg);
    }
    to {
        transform: rotateX(360deg) rotateY(360deg);
    }
}

#wrap:hover .out_front {
    transform: translateZ(200px);
}

#wrap:hover .out_back {
    transform: translateZ(-200px);
}

#wrap:hover .out_left {
    transform: rotateY(90deg) translateZ(200px);
}

#wrap:hover .out_right {
    transform: rotateY(-90deg) translateZ(200px);
}

#wrap:hover .out_top {
    transform: rotateX(90deg) translateZ(200px);
}

#wrap:hover .out_bottom {
    transform: rotateX(-90deg) translateZ(200px);
}
